<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui"
	xmlns:ui="http://java.sun.com/jsf/facelets">

<ui:composition template="template.xhtml">
	<ui:define name="corpo">
		<h2>Usuarios</h2>
		<h:panelGrid>
			<p:commandButton value="Adicionar usuario"
				oncomplete="dialogCadastroPessoa.show()" style="align: left" />

		</h:panelGrid>
		<h:form id="cadPessoa">

			<p:dialog widgetVar="dialogCadastroPessoa" header="Dados do Usuario"
				closable="false" resizable="false" modal="true" hideEffect="slide"
				showEffect="clip" draggable="false">

				<h:panelGrid id="displayPessoa" columns="3" cellpadding="4"
					style="margin:0 auto;">

					<h:outputLabel value="Nome: " />
					<p:inputText id="nome" value="#{pessoaBean.pessoa.nome}"
						title="Insira aqui o nome." />
					<p:message for="nome"></p:message>

					<h:outputLabel value="CPF: " />
					<p:inputMask mask="999.999.999-99" value="#{pessoaBean.pessoa.CPF}"
						id="txtCPF" label="CPF" title="Insira aqui o CPF">
					</p:inputMask>
					<p:message for="txtCPF"></p:message>

					<h:outputLabel value="Email: " />
					<p:inputText type="text" id="txtEmail"
						value="#{pessoaBean.pessoa.email}" title="Insira aqui o e-mail" />
					<p:message for="txtEmail"></p:message>

					<h:outputLabel value="Telefone: " />
					<p:inputMask mask="(99)9999-9999" id="txtTel"
						value="#{pessoaBean.pessoa.telefone}"
						title="Insira aqui o telefone" />
					<p:message for="txtTel"></p:message>

					<h:outputLabel value="Login: " />
					<p:inputText id="login" value="#{pessoaBean.pessoa.login}"
						title="Insira aqui o login"/>
					<p:message for="login"></p:message>

					<h:outputLabel value="Senha: " />
					<p:password id="senha1" value="#{pessoaBean.pessoa.senha}"
						validatorMessage="As senhas não conferem, favor redigitar"
						title="Insira aqui a senha" match="senha2" required="true"
						requiredMessage="Favor digitar a senha" />
					<p:message for="senha1"></p:message>

					<h:outputLabel value="Confirmação senha " />
					<p:password id="senha2" value="#{pessoaBean.pessoa.senha}"
						required="true" title="Insira aqui a senha"
						requiredMessage="Favor digitar a senha" />
					<p:message for="senha2"></p:message>




					<h:outputLabel value="Perfil: " />
					<p:selectOneMenu id="selectPerfil"
						value="#{pessoaBean.pessoa.perfil}" required="true">
						<f:selectItems value="#{pessoaBean.perfil}" var="perfil"
							itemLabel="#{perfil.perfil}" itemValue="#{perfil}" />
							<p:ajax update="displayPessoa"></p:ajax>
					</p:selectOneMenu>
					<p:message for="selectPerfil"></p:message>
					
					<h:outputLabel value="Empresa: " rendered="#{pessoaBean.pessoa.perfil != 'ALUNO'}" />
					<p:selectOneMenu id="selectBox" rendered="#{pessoaBean.pessoa.perfil != 'ALUNO'}"
						value="#{pessoaBean.pessoa.empresa}" converter="empresaConverter"
						required="true">
						<f:selectItems value="#{empresaBean.empresas}" var="empresa"
							itemLabel="#{empresa.nome}" itemValue="#{empresa}" />
					</p:selectOneMenu>
					<p:message for="selectBox" rendered="#{pessoaBean.pessoa.perfil != 'ALUNO'}"></p:message>

					<h:outputText></h:outputText>
					<p:commandButton id="btsalvar" value="Salvar"
						rendered="#{pessoaBean.pessoa.id == null}"
						actionListener="#{pessoaBean.gravarPessoa}"
						update=":formulario:tabelaPessoa displayPessoa"
						oncomplete="handleCadastroPessoaRequest(xhr, status, args)">
					</p:commandButton>

					<p:commandButton id="btAlterar" value="Alterar"
						rendered="#{pessoaBean.pessoa.id != null}"
						actionListener="#{pessoaBean.alterarPessoa}"
						update=":formulario:tabelaPessoa displayPessoa"
						oncomplete="handleCadastroPessoaRequest(xhr, status, args)">
					</p:commandButton>

					<p:commandButton value="Voltar" update="displayPessoa"
						process="@this" oncomplete="dialogCadastroPessoa.hide()"
						action="#{pessoaBean.limparPessoa()}">
						<p:resetInput target="displayPessoa" />
					</p:commandButton>
				</h:panelGrid>

			</p:dialog>

			<script type="text/javascript">
				function handleCadastroPessoaRequest(xhr, status, args) {
					if (args.validationFailed || !args.gravado) {
						jQuery('#dialogCadastroPessoa').effect("shake", {
							times : 3
						}, 100);
					} else {
						dialogCadastroPessoa.hide();
					}
				}
			</script>

		</h:form>
		<h:form id="formulario">

			<p:dataTable id="tabelaPessoa" value="#{pessoaBean.pessoas}" var="p"
				rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'par' : 'impar'}"
				rowIndexVar="rowIx" emptyMessage="nenhum registro encontrado">


				<f:facet name="header">Usuarios</f:facet>

				<p:column headerText="Nome">
					<h:outputText value="#{p.nome}" />
				</p:column>
				<p:column headerText="CPF">
					<h:outputText value="#{p.CPF}" />
				</p:column>
				<p:column headerText="Email">
					<h:outputText value="#{p.email}" />
				</p:column>
				<p:column headerText="Telefone">
					<h:outputText value="#{p.telefone}" />
				</p:column>
				<p:column headerText="Empresa">
					<h:outputText value="#{p.empresa.nome}" />
				</p:column>
				<p:column headerText="Ações">
					<div align="center">
						<p:commandLink update=":cadPessoa:displayPessoa" title="Editar"
							oncomplete="dialogCadastroPessoa.show()">
							<f:setPropertyActionListener value="#{p}"
								target="#{pessoaBean.pessoa}" />
							<p:graphicImage value="resources/imagens/editar.png" width="24px"
								height="24px" />
						</p:commandLink>
						<p:commandLink update=":formRemovePessoa:panelRemovePessoa"
							title="Remover" oncomplete="popupRemovePessoa.show()">
							<f:setPropertyActionListener value="#{p}"
								target="#{pessoaBean.pessoa}" />
							<p:graphicImage value="resources/imagens/delete.png" width="24px"
								height="24px" />
						</p:commandLink>
					</div>
				</p:column>




			</p:dataTable>
		</h:form>

		<h:form id="formRemovePessoa">
			<p:dialog header="Têm certeza que deseja apagar?"
				widgetVar="popupRemovePessoa" resizable="false"
				id="popupRemovePessoa" showEffect="fade" hideEffect="explode"
				closable="false" modal="true">

				<p:panel id="panelRemovePessoa" columns="2">

					<p:commandButton value="Sim, remover"
						action="#{pessoaBean.removerPessoa}"
						update=":formulario:tabelaPessoa"
						oncomplete="popupRemovePessoa.hide()" />

					<p:commandButton value="Não remover"
						action="#{pessoaBean.limparPessoa}"
						onclick="popupRemovePessoa.hide()" />
				</p:panel>
			</p:dialog>
		</h:form>

	</ui:define>
</ui:composition>
</html>